<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //高阶函数：有函数作为输入或者输出的函数称为高阶函数
        //1.回调函数，把函数作为参数传给另个函数
        // function fn() {
        //     console.log("函数fn");
        // }

        // function fnf(fn) {
        //     fn();
        // }

        // 2.把函数作为输出返还出来的函数；

        function add(a, b, c) {  // 多元函数:多个参数的函数叫多元函数，一个参数的函数叫一元函数
            return a + b + c;
        }

        //将多元函数转换成一元函数的过程 叫柯里化
     function curryFn(add) {
            return function (a) {
                console.log(a);
                return function (b) {
                    console.log(b);
                    return function (c) {
                        console.log(c);
                      return  add(a,b,c)
                    }
                }
            }
            
        }
       let myadd = curryFn(add)
       myadd(1)(2)(3)

    </script>
</body>

</html>